Enabling efficient review of media objects associated with a client device

ABSTRACT

A method and system for enabling efficient review of media objects associated with a client device is described. In one embodiment, a computer-implemented method includes detecting a media object associated with the client device, automatically generating a reduced version of the detected media object, and transmitting the reduced version to a remote data storage location over a network connection from the client device to be reviewed by a user.

TECHNICAL FIELD

Embodiments of the invention relate to the field of media object management, and more particularly, to enabling efficient review of media objects associated with a client device.

BACKGROUND

As portable electronic devices become more prevalent over time, the need for parental control and/or employer control of such devices increase. These portable electronic devices have the ability to receive, transmit, present, and create media objects, such as video files, still images, animations, or the like. Some of these portable electronic devices include a built-in camera that allows a user to create an image and quickly distribute the image with little effort. One concern that arises from the ability to easily receive, send, present, and create images on the portable device, is the type of images being sent, received, presented, or created, such as done in “sexting.” “Sexting” is the act of sending sexually explicit messages or photos, primarily between mobile devices, such as the children's mobile phones. With the rise in “sexting,” especially in the case of sending of explicit images to and from children and teenagers, parents need a way to view all images received, transmitted, presented, or created on their children's phones. Likewise, employers may have a need to monitor images being sent, received, presented, or created on a company-owned phone. Because images can be received or sent via Multimedia Messaging Service (MMS) or email messages, stored in a memory card or the phone's memory, presented by the phone, or created by the phone, there is no single place for manual inspection of a phone to review all images associated with the phone.

In another context, individuals may wish to quickly review images stored on their phone before deciding which ones to keep or delete. Like above, there is no single place for manual inspection of the phone to review all images associated with the phone, and the cost of transmission of high quality images or video over the network may be too great.

One existing solution provides for transmitting images created by an integrated camera of a mobile device to a server. However, sending the images over the network, such as over the cellular network, can dramatically affect the data plan consumption, bandwidth, battery life, operating system (OS) speed, or other usability factors of the phone. Also, as these devices become more sophisticated, these devices create larger image files. For example, some mobile phones have up to 12-13 megapixel cameras that are capable of capturing high quality images, which result in large files approximately 18-96 MB uncompressed or approximately 2-8 MB compressed. Video files could be even larger. Monitoring solutions that transmit a full-size copy of each image across the network, which often has a limited bandwidth, may be impractical in the parental and employer control context.

Existing techniques fail to provide efficient solutions for enabling efficient review of pictures associated with a mobile device.

SUMMARY

A method and system for enabling efficient review of media objects associated with a client device is described. In one embodiment, a computer-implemented method includes detecting a media object associated with a client device, automatically generating a reduced version of the detected media object, and transmitting the reduced version to a remote data storage location over a network connection from the client device to be reviewed by a user.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the invention, which, however, should not be taken to limit the invention to the specific embodiments, but are for explanation and understanding only.

FIG. 1 is a block diagram of exemplary system architecture in which embodiments of the present invention may operate.

FIG. 2 is a block diagram of one embodiment of the client device and server of FIG. 1.

FIG. 3 is a block diagram of another exemplary system architecture in which embodiments of the present invention may operate.

FIG. 4 is a flow diagram of one embodiment of a method of managing media objects associated with a client device.

FIG. 5 is a flow diagram of one embodiment of a method of facilitating review of media objects associated with client devices.

FIG. 6 illustrates a diagrammatic representation of a machine in the exemplary form of a computer system.

DETAILED DESCRIPTION

A method and system for enabling efficient review of media objects associated with a client device is described. In one embodiment, a computer-implemented method includes detecting a media object associated with a client device, automatically generating a reduced version of the detected media object, and transmitting the reduced version to a remote data storage location over a network connection from the client device to facilitate a user review of one or more media objects associated with the client device. Media objects may represent images, audio, video, animation, or any combination thereof. The media objects include data that represent characteristics of physical and tangible objects, for example and without limitation, the images of people, animals, places, and inanimate objects. In one embodiment, the reduced version is at least one of a reduced-size copy of the media object and a uniform resource locator (URL) of the media object. The embodiments described herein may enable third parties (e.g., parents, employers, etc.) or device users to easily review all media objects received, sent, presented, or created by a client device, such as a mobile phone, without having to send the full media object across the network, thereby avoiding bandwidth limits, cost, battery consumption, and the like.

In one embodiment, the method monitors at least one of a storage location and a media object generator of the client device to detect receipt, transmission, presentation, or creation of a media object by the client device. In another embodiment, the method monitors the storage location to detect when the media object is written to the storage location. In this embodiment, the method searches for files stored in the storage location that have a designated media file type to detect the media object. In another embodiment, the method monitors incoming or outgoing messages to detect when the message contains the media object. The message may be at least one of an email message, a Multimedia Messaging Service (MMS) message, an Enhanced Messaging Service (EMS) message, and a text message containing media data. In another embodiment, the method monitors a media object generator to detect when the media object is created by the media object generator, presented by the media object generator, or stored by the media object generator. In one embodiment, the media object generator is a camera application that communicates with a camera associated with the client device. The method detects the media object when the camera application creates the media object or when the camera application stores the media object. In another embodiment, the media object generator is a browser application for creating a temporary file for the media object when rendering the media object in a browser window. In another embodiment, the media object generator is a media presentation application for presenting a temporary file for the media object to a user of the client device.

In one embodiment, a media object management system hosted by a client device detects a media object on the client device, creates a reduced version of the media object and sends it to a data storage location that is remote from the client device (e.g., off the mobile phone), for example, a cloud computing storage location that can be viewed via the web by a user of the client device or another user, such as a parent or employer. In one embodiment, the reduced version can be reviewed by a user on another device other than the client device. In another embodiment, the reduced version can be reviewed by a user on the same client device, such as via a browser on the client device. These reduced versions of the media objects can be sent individually or periodically in batches. Once stored in the remote data storage location, the reduced versions can be reviewed by another user, such as by logging into the server from a second client device or via a console coupled to the server. In another embodiment, once the administrator or parent is logged onto the server, for example, by logging into a web portal to the monitoring service, the administrator or parent can request a full-size copy of the image that was detected on the client device.

In one embodiment, the client device is a camera phone or a high-end stand-alone digital camera that has a camera application that generates media objects such as videos and images. Such client devices may also use cellular networks to send and/or receive images from other devices. For example, the cellular network may use MMS, also referred to as “picture messaging,” to receive and send messages containing an image by the mobile phone. In another embodiment, the client device is a mobile phone that provides email and/or text messaging (e.g., EMS, SMS, etc.) capabilities to send and receive emails or text messages with images. In yet another embodiment, the client device is a mobile phone providing web browsing capabilities to upload images in a web browser using uniform resource locators (URLs) or links specified by a user (e.g., by activating a link included in an email or text message). In still another embodiment, the client device is a mobile camera phone that has a combination of capabilities discussed above.

In one embodiment, a system includes a client device that can perform at least one of the following: receiving, transmitting, presenting, and/or creating a media object. In this embodiment, the client device includes a media object management system that detects a media object associated with the client device, automatically generates a reduced version of the detected media object, and transmits the reduced version to a remote data storage location over a network connection to be reviewed by a user. In one embodiment, the media object management system includes a monitoring agent to monitor at least one of a storage location and a media object generator of the client device to detect receipt, transmission, presentation, or creation of the media object by the client device. The client device also includes a reduced version creator to automatically generate the reduced version of the detected media object, and a transmitting agent to transmit the reduced version to the remote data storage location over the network connection to be reviewed by the user. In one embodiment, the monitoring agent monitors the storage location to detect when the media object is written to the storage location. In this embodiment, the monitoring agent searches for files stored in the storage location that have a designated media file type to detect the media object. In another embodiment, the monitoring agent monitors an incoming or outgoing message to detect when the message contains the media object. In another embodiment, the monitoring agent monitors a media object generator to detect when the media object is presented by the media object generator, created by the media object generator, or stored by the media object generator.

In another embodiment, the system also includes a server that is coupled to the remote data storage location and includes a media object presentation system to access the reduced version stored in the remote data storage location and to present the reduced version to the user. In one embodiment, the media object presentation manager includes a requesting agent to request a full-size copy of the media object from the client device in response to input received at the server from the user. In this embodiment, the media object management system of the client device includes a full-size media object request agent to respond to the request.

In other embodiments, a computer-readable storage medium stores instructions, which when executed on a processing system, cause the processing system to perform the various embodiments of the methods described herein.

In the following description, numerous details are set forth. It will be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that embodiments of the present invention may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the embodiments of the present invention.

Some portions of the detailed description that follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing”, “computing”, “calculating”, “determining”, “displaying” or the like, refer to the actions and processes of a computer system, or similar electronic computing devices, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

Embodiments of the present invention also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer-readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions.

FIG. 1 is a block diagram of exemplary system architecture 100 in which embodiments of the present invention may operate. System architecture 100 includes a client device 110 and a server 120, each having one or more network connections 103 to connect to a network 102, such as private or public networks, or any combination thereof. For example, the network 102 may be a local area network (LAN), an intranet, an extranet, a cellular network, a paging network, the Internet, or any combination thereof. The network connections 103 may be LAN connections, Internet connections, Wi-Fi connections, 3G connections, EDGE connections, CDMA, TDMA, GSM, or other types of cellular network connections, and may use various types of protocols to communicate data to and from the client device 110 and other devices connected to the network 102, such as the remote storage location 130 and the server 120.

The client device 110 may be a portable electronic device, such as a mobile phone (also referred to as cell or cellular phone), pager, personal digital assistant (PDA), wireless terminal, laptop computer or another portable computer, portable gaming system, or another wireless electronic device. Although portable electronic devices typically have a lower bandwidth than non-portable electronic devices, the embodiments described herein may be implemented in non-portable electronic devices that have a limited bandwidth network connection. Alternatively, the embodiments may be used in any type of device where it is beneficial to send reduced-size copies of the media objects rather than the full-size copies, such as to reduce the amount of consumed bandwidth for such monitoring. For example, the client device 110 may be an electronic device that is not typically considered to be portable, such as a desktop computer, gaming system, television, set-top box, DVD or Blu-Ray disc player, or another entertainment device that has one or more network connections (either wireless or wired connections) to the network 102. The server 120 may be one or more machines including one or more server computers, gateways or other computing devices.

The system architecture 100 also includes remote storage 130. The remote storage 130 may be part of one or more machines including one or more server computers, gateways or any other computing devices to manage data stored in the remote storage 130. In an embodiment, the remote storage 130 is implemented within a storage area network (SAN), in which remote computer storage devices, such as disk arrays and tape libraries, are attached to network 102 in such a way that the storage remote storage device 130 appears as locally attached to the client device 110. Alternatively, the remote storage 130 can be implemented within a SAN for the server 120, in which the remote storage 130 appears as being locally attached to the server 120. In another embodiment, the remote storage 130 is implemented within a Network-attached storage (NAS). NAS is a self-contained computer system connected to a network, with the purpose of supplying file-based data storage services to other devices on the network 102. In another embodiment, the remote storage 130 is hosted storage that provides remote storage as a service over the network 102. Hosted storage is also referred to as cloud computing storage. In one embodiment, the server 120 hosts the remote storage service for the client device 110, making the remote storage 130 transparent to the client device 110. Alternatively, an electronic device other than the server 120 can be used to manage the remote storage 130. The remote storage 130 may include a data store, such as a database that can be accessed by the client device 110 or the server 120. Although depicted in FIG. 1 as being separate from the server 120, in another embodiment, the remote storage 130 may be part of the server 120. It should be noted that a remote data storage location, as described herein, may refer to a storage location that is remote from the client device 110 to which the client device 110 sends the reduced versions of the detected media objects.

In the depicted embodiment, the client device 110 includes one or more network connections to the network 102, a media object management system 112, local storage 114, one or more media object generators 116, and a user interface 118. The client device 110 can perform at least one of receiving, transmitting, presenting, and creating a media object. The media object generator 116 may represent a camera application that creates media files for images and videos captured by a camera of the client device 110, a web browser application that renders media objects using URLs or links specified by a user, a media presentation application that presents the media object to the user of the device, or any other application, module or device that is capable of creating or presenting permanent or temporary media files. The media object management system 112 can be implemented as software, hardware, firmware or any combination of the above.

In one embodiment, the media object management system 112 monitors at least one of a storage location in the local storage 114 and one or more media object generators 116 to detect receipt, transmission, presentation and/or creation of the media object. The media object management system 112 automatically generates a reduced version of the detected media object, and transmits the reduced version to a remote data storage location in the remote storage 130 over the network 102. In one embodiment, the media object management system 112 transmits that reduced versions to the remote storage 130 by way of one or more network connections 103. In another embodiment, the media object management system 112 transmits the reduced version to the server 120 by way of one or more network connections 103, and the server 120 then stores the reduced version in the remote storage 130. When storing the reduced version in the remote storage 130, the server 120 may transmit the reduced version over the one or more network connections 103; alternatively, over a connection 105 without transmitting through the network 102. For example, the network 102 may be the Internet and the remote storage 130 may be coupled to the server 120 via the connection 105 within a private network, such as a LAN. In these embodiments, the media object management system 112 transmits the reduced version to the remote data storage location, without sending the full-size media object across the network connection. The automatic generation and transmission of the reduced version to a remote data storage location may enable parents, employers, users of the client device, or other third parties to easily review all media objects (e.g., pictures, videos, or the like) received, sent, presented, or created by the client device (e.g., mobile phone).

In one embodiment, the reduced versions of the media objects may be thumbnails of images, and a user or a third party such as a parent or an administrator of an employer can become familiar with the images associated with the client device by reviewing the image thumbnails. Alternatively, the reduced version may be a copy of video having a lower resolution than the original video, one or more screen shots of the video, with or without the audio, a segment of the video, or other reduced-size copies of other types of media objects, such as audio, animations (e.g., an animated GIF file), or the like. Alternatively, the reduced version of the video may be created to represent the original video in other formats than the original formats, for example, screen shots of the video, only audio of the video, or other types of formats that result in a smaller file size than the original media object. In yet another embodiment, the reduced versions may be URLs of media objects rendered in a web browser, where, for example, the user enters a URL in the web browser or activates a link included in an email or text message or a link included in another document. The media object management system can create reduced versions of media objects, either individually or in batches, and then transmit the reduced versions of media objects, either individually or in batches.

As described above, with the rise of “sexting,” including the transmission and receipt of sexually explicit images to and from children and teenagers, parents need a way to view all images received, transmitted, presented, or created on their children's phones or other portable electronic devices. Likewise, employers or owners of phones may have a need to monitor images being sent, received, presented, and/or created on a company-owned phone. In addition, individuals may wish to quickly review their images before deciding which ones to keep or delete. Because images can be received or sent via MMS, stored in memory cards, stored as attachments to emails or other messages, and created by the client device, there is no single place to monitor all images associated with a client device. By creating and collecting reduced versions of the original images and sending these reduced versions to a remote data storage location, such as a cloud storage location, the embodiments described herein enable easy review of the images by the client device user or a third party.

By not sending the full-size copy of the media object across the network 102, the embodiments described herein avoid significant increase in data plan consumption, increase in bandwidth limits, increase in battery consumption (particularly important in portable electronic devices), decrease in operating system speed, or the like.

Embodiments of the media object management system 112 can detect new media objects on the client device no matter the origin of the media objects. For example, the media objects or URL of the media objects can be received by the client device in a message or as an attachment to a message, the media objects can be viewed and temporary stored on the client device, or the media objects can be originally created by the client device itself. The media objects that are sent to others can also be monitored, despite the origin of the media object.

The client device 110 may be any type of processing device, for example and without limitation one or more processors, such as microprocessors, central processing units (CPUs), controllers, or the like. More particularly, the client device 110 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets. The client device 110 may also be one or more special-purpose computing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The client device 110 is configured to execute processing logic for performing the operations and steps discussed herein, such as the operations of the media object management system 112, as described in more detail below. Alternatively, the processing logic may be hardware logic that can perform the operations and steps described herein.

In one embodiment, the client device 110 includes local storage 114 that may be removable or non-removable storage to store the data corresponding to the media objects, such as, for example, memory cards using removable or on-board flash memory (e.g., CompactFlash cards, Secure Digital (SD) cards, MiniSD, etc.), memory sticks, MultiMediaCard (MMC), SmartMedia cards, Universal Serial Bus (USB) flash drives, xD-Picture card, or the like. The local storage 114 may be also other types of memory, such as, for example, read-only memory (ROM), dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or DRAM (RDRAM), static memory (e.g., static random access memory (SRAM)), or a data storage device such as, for example, hard disk drives, optical drives, microdrives, disk drives, floppy disks, a subscriber identity module (SIM) card, or other types of memory including caches, temporary files, permanent files and the like for storing data of the media objects as described herein.

As discussed above, the one or more media object generators 116 may each be an application or device that presents or creates media objects. For example, the media object generator 116 may be an application associated with a still image digital camera that is coupled to or part of the client device 110. The still image digital camera takes a photograph by capturing an image via one or more electronic image sensors. The still image can be processed by the digital camera application and stored in the local storage 114. Alternatively, the still image can be stored in the local storage 114 without any further processing. The image can be stored as an image file with the image in a raw data format or in other types of formats, such as the Joint Photography Experts Group (JPEG) standard, Graphics Interchange Format (GIF), animated GIF, bitmap, Tagged Image File Format (TIFF), or the like.

In another embodiment, the media object generator 116 is an application associated with a digital video camera. The digital video camera application processes video (with or without audio) captured by the digital video camera, creates respective video files, and stores them in the local storage 114. Alternatively, the video can be stored in the local storage 114 without any further processing. The video files can have formats, such as Audio Video Interleave (AVI), Digital Video (DV), Moving Picture Experts Group (MPEG), Quicktime MOV, Windows Media Video (WMV), MP4 (MPEG-4), Design Rule for Camera Format (DCF), Digital Print Order Format (DPOF), or the like.

In another embodiment, the media object generator 116 represents an application for presenting media objects to a user of the client device 110, for example, via the user interface 118. For example, an image viewer application may be used in connection with an email application to display an embedded image or an attached image to the email message. When the user views the image, the image viewer application may not necessarily store the image in local storage (e.g., flash memory) on the client device when presenting the image, but the media object management system 112 can detect the image. Similarly, the image viewer application may be used in connection with viewing a MMS message that contains a media object.

In another embodiment, the media object generator 116 may be a web browser application that renders media objects using URLs entered by a user or links activated by the user, where the link may be included in an email or text message received by the user or the link may be included in a document being viewed by the user. Alternatively, the media object generator 116 may be other devices, such as a recording device (e.g., microphone or recording application) to record audio as the media objects, or other types of applications that receive, send, create, modify or manipulate, view, play, store, or save media objects.

In the depicted embodiment, the user interface 118 is coupled to the media object management system 112. The user interface 118 may receive input from a user of the client device 110, as well as provide output to the user. The user interface 118 may be one or more interface device for presenting the media objects to the user, such as a display, a speaker, a screen, or the like, and for receiving input from the user, such as a keyboard, a cursor control device (e.g., a touch screen, a touchpad, a mouse, or the like), a microphone, or the like. In other embodiments, instead of being physical user interfaces, the user interface 118 may be user interfaces generated by the client device 110, for example, on a display of the client device 110. The user interface 118 may be one or more Graphical User Interfaces (GUIs), command line interfaces (CLIs), or the like, to accept input via input devices such as a keyboard and mouse and to provide articulated graphical output on the display. In another embodiment, the user interface 118 represents a web-based user interface that can be generated by the server 120 to accept input and provide output by generating web pages, which are transmitted via the network 102 (e.g., Internet) and viewed by the user using a web browser program operating on the client device 110. For example, the user interface 118 may be web-based user interfaces that utilize Java, AJAX, Adobe Flex, Microsoft .NET, or similar technologies to provide real-time control in a separate program, which may eliminate the need to refresh a traditional HTML based web browser. Alternatively, the user interfaces 118 may use other types of user interfaces as would be appreciated by one of ordinary skill in the art having the benefit of this disclosure.

In the depicted embodiment, the server 120 includes a media object presentation system 122 that allows users to review reduced versions of media objects stored in remote storage 130. In addition, in one embodiment, the media object presentation system 122 receives characteristics of the media objects along with the reduced versions of the media objects. The characteristics may include, for example, an identifier of a sender or recipient of a media object or of a URL of the media object, an identifier of an application or a device that created a media object, a timestamp associated with receipt, transmission, presentation, or creation of a media object, etc. The media object presentation system 122 may organize the reduced versions of the media objects based on the above characteristics. In one embodiment, the media object presentation system 122 provides a user interface 128 to display the reduced versions stored in the remote storage 130 to a user, such as a parent, employer, or owner of the client device.

FIG. 2 is a block diagram of one embodiment of the client device 110 and server 120 of FIG. 1. The client device 110 includes an operating system 230 and media object generators including, for example, a camera application 240, a web browser 242, a media presentation application 244, etc. Camera application 240 creates media object files for images and videos captured by an associated camera. Web browser 242 may also create temporary files for images and videos being rendered in a browser window when a user enters a URL in the browser window or activates a link included, for example, in an email message or a document. The media presentation application 244 may present temporary or permanent files for images and videos being presented to the user. The media presentation application may be an image viewer for presenting images, a media player for presenting images, animations, video, audio, video and audio, or the like.

The client 110 further hosts a media object management system 112 that includes a monitoring agent 212, a reduced version creator 214, a transmitting agent 216, and a full-size media object request agent 218. In this embodiment, the monitoring agent 212 monitors messages received by and transmitted from the client device 110 for media objects attached to, or included in the messages. In addition, the monitoring agent 110 monitors one or more storage locations in the local storage 114 for media objects stored by a user, and one or more media object generators for media objects created automatically by the media object generators. The reduced version creator 214 generates a reduced version of the detected media object. The reduced version can be a reduced-size copy (e.g., an image thumbnail) of a media object, a URL of a media object, or any other version of a media object that identifies the media object without including the entire media object. In one embodiment, the reduced version creator 214 automatically generates the reduced-version of the detected media object. In another embodiment, the reduced version creator 214 generates the reduced version of the detected media object in response to user input. The reduced version creator 214 sends the reduced versions to the transmitting agent 216 to be transmitted either individually or as part of a batch of reduced versions corresponding to multiple media objects detected by the monitoring agent 212. The transmitting agent 216 automatically transmits the reduced versions over the one or more network connections 103 to a remote data storage location over the network 102 (not illustrated in FIG. 2), for example, to the remote storage 130 via the server 120. In another embodiment, the transmitting agent 216 transmits the reduced versions when requested by the server 120. In another embodiment, the transmitting agent 216 transmits the reduced versions over the network 102 (not illustrated in FIG. 2) to the remote storage 130 over one or more network connections 205.

In the depicted embodiment, the transmitting agent 216 includes a transmission optimization agent 220 that determines an appropriate or optimal time and/or a type of transmission (e.g., via 3G connection, Wi-Fi connection, etc.) for the reduced versions. In one embodiment, the transmission optimization agent 220 may determine when the reduced version of the detected media object should be transmitted to the remote data storage location and/or what network connection should be used based on one or more conditions. In one embodiment, these conditions may be specified in a configuration file that is accessed by the transmission optimization agent 220. The configuration file may allow these conditions to be programmed and even reprogrammed. Alternatively, other methods and mechanisms may be use to specify the conditions for the transmission optimization agent 220 as would be appreciated by one of ordinary skill in the art having the benefit of this disclosure. These conditions may specify that the transmitting agent 216 should transmit the reduced version, for examples, upon creation of the reduced version, after a specified period of time, or at a specified point in time. In another embodiment, the transmission optimization agent 220 can determine an appropriate time or an appropriate network to transmit the reduced versions based on other conditions, such as the data transmission costs associated with the subscriber and/or network provider. The data transmission costs may be determined using one or more factors, such as, for example, the client device's current or average computational load or processing capability, the available bandwidth, the connection speed or transfer rates, the time for transmission given the speed and/or bandwidth of the connection, battery life of the client device 110, the types of available networks, limits on the subscriber's data plan, minutes, or roaming locations, a current location of the client device 110, the mode or state of the client device 110, or the like. For example, the transmission optimization agent 220 may be configured to allow transfers of the reduced versions when there is a Wi-Fi connection or a 3G connection available, or prevent transfers when there is only an EDGE connection available, for example. Alternatively, the transmission optimization agent 22 may be configured to allow transfers when other conditions are satisfied, such as when there is sufficient bandwidth, or when the mobile device is not in active use by the user, i.e., sleep mode or inactive state. The data transmission costs may be determined for each available network, such as the data transmission cost associated with a Wi-Fi connection, a 3G connection, an EDGE connection, or an IP connection (e.g., TCP/IP, FTP, or UDP type connections), and the transmission optimization agent 220 may assign a relative cost associated with each available network. The transmission optimization agent 220 may use the relative costs associated with each available network to determine which type and/or at what time to send one or more of the reduced versions of the media objects detected on the client device 110. The transmission optimization agent 220 may also be used to determine whether to send the reduced versions individually or as part of a batch.

In one embodiment, the media object management system 122 detects media objects on the client device 110 using information provided by a filter driver 232. In one embodiment, the filter driver 232 acts as part of the operating system OS 230 to be able to determine which applications start executing (e.g., by intercepting OS calls for process creation) and to see I/O requests of executing applications (e.g., using file system hooks to see all file I/O on the system and to receive I/O request packets (IRPs)). The filter driver 232 can be instructed by the media object management system 112 to monitor certain applications, such as a camera application 240, a web browser 242, a media presentation application 244, an email application, a messaging application, or the like. The filter driver 232 can then send file access events associated with a particular application, such as creation, transmission, presentation, or receipt of a media object to the monitoring agent 212. A file access event may include, for example, information identifying a file being accessed as being a designated media type or as containing media data, the application accessing the file, etc. Alternatively, other types of information may be part of the file access event.

Upon receiving a file access request, the monitoring agent 212 may analyze the event to determine whether the event triggers a detection of a media object being received, sent, presented, or created by the monitored application, such as when the camera application 240 attempts to create a temporary or permanent file for an image or video captured by an associated camera, when the media presentation application 244 presents a temporary or permanent file for an media object to the user, or when the web browser 242 attempts to create a temporary file for data being rendered in a web browser window. If the monitoring agent 212 determines that the file access event associated with the application does not involve a media object, the monitoring agent 212 ignores this file access event. Although the camera application 240, web browser 242, and media presentation application 244 have been illustrated, it should be noted that the monitoring agent 212 can monitor other applications of the client device using the filter driver 232.

In the depicted embodiment, the server 120 hosts a media object presentation system 122 that communicates with the remote storage 130 via the storage interface 226. For example, when the client device 110 transmits a reduced version of a detected media object to the server 120, the server 120, using the storage interface 226 sends the reduced version to the remote storage 130. In another embodiment, the client device 110 sends the reduced version to the remote storage 130, instead of the server 120, and the server 120 can retrieve the reduced version using the storage interface 226 for presentation to the other user (e.g., parent), for example, via the user interface 128. The remote storage 130 may be a database managed by the server 120 or another device. The reduced versions can be organized in the remote storage 130 according to various criteria, such as identifiers that identify the client device 110 (e.g., network address), a user of the client device 110, or another user, such as a parent, an employer, or an owner of the client device 110. Alternatively or in addition, the reduced versions can be organized according to other criteria provided with the reduced versions, such as a sender or recipient of a media object, an application or device that created or presented a media object, time when a media object was detected, type of a media object, or the like. Although depicted as being part of the media object presentation system 122, the storage interface 226 may be separate from the media object presentation system 122 in other embodiments.

In the depicted embodiment, the media object presentation system 122 includes a requesting agent 224. The requesting agent 224 requests a full-size copy of the media object from the client device 120. In one embodiment, the requesting agent 224 requests the full-size copy in response to input received at the server 120, such as user input from a user via the user interface 128. For example, an administrator or parent may review one or more reduced-size copies of images associated with the client device 110, and may decide to view the full-size copy of one or more images, and may select one of the images via the user interface 128. The user interface 128 sends the request to the requesting agent 224, and the requesting agent 224 communicates with the client device 110 over the one or more network connections 103 to retrieve the full-size copies of the one or more images to be reviewed by the administrator or parent.

In one embodiment, the media object management system 112 includes a full-size media object request agent 218 that receives the request from the requesting agent 224 and responds to the request. In one embodiment, the full-size media object request agent 218 determines whether the full-size copy is stored in the local storage 114. If so, the full-size media object request agent 218 retrieves a copy of the full-size copy of the media object and sends the copy back to the server 120. In some cases, the media object may not be stored in the local storage 114, for example, the media object has been deleted by a user of the client device 110 or automatically by a corresponding application. In such cases, the full-size media object request agent 218 may respond to the request by notifying the requesting agent 224 that the media object is no longer available on the client device 110. In one embodiment, the requesting agent 224 communicates with the full-size media object request agent 218 by way of the one or more network connections 103 and the transmitting agent 216 as indicated by path 207. Alternatively, the full-size media object request agent 218 can establish one or more network connections to communicate with the requesting agent 224 without the use of the transmitting agent 216, which is used to send the reduced-size copies of the media objects to the server 120.

It should be noted that various agents have been illustrated and described with respect to FIG. 2. These agents may represent the functional operations performed by the hardware, software, or firmware of the client device. In one embodiment, the agents represent an execution thread or routine that performs the corresponding functions. In another embodiment, the agents represent the instructions that are executed by the client devices or servers to perform the corresponding functions. In another embodiment, these agents represent hardware logic that performs the corresponding functions. It should also be noted that, in other embodiments, the agents may be combined together or separated into further functional blocks. For example, the transmitting agent 216 and transmission optimization agent 220 may be separate functional blocks.

FIG. 3 is a block diagram of another exemplary system architecture 300 in which embodiments of the present invention may operate. System architecture 300 is similar to system architecture 100 as denoted by the similar reference labels, but a second client device 310 is coupled to the network 102. The client device 310 can be a portable or non-portable electronic device, such as those described above with respect to the first client device 110 of FIG. 1. The second client device 310 may be used by a second user, such as an owner of the client device 110, a parent, an employer, an administrator, or the like. The second user may also be the same user as that of the client device 110, for example, the first client device 110 may be a mobile phone and the second client device 310 may be a desktop computer, each operated by the same user.

Once the client device 110 has uploaded the reduced versions for media objects detected on the client device 110 to the remote data storage location, the second client device 310 can access the reduced versions for review on the client device 310. In one embodiment, the user of the second client device 310 logs into a monitoring service, such as using the user interface 338 of client device 310 (e.g., a web portal presented to the user via a web page in a browser application). Once the user has logged in, the server 120 can send the reduced version for each of the media objects detected on the device. The user can review the reduced-size copies and decide whether to request a full-size copy of the media object. If so, the user can request a full-size copy of the media object, for example, by selecting one or more of the reduced-size copies to be downloaded to the client device 310, such as described above with respect to FIG. 2. For example, in the case of parental control and security, the second client device 310 can be used by the parent to monitor reduced-size copies of all media objects, detected on the client device 110, such as images sent via email, MMS, or even created by an integrated camera. If needed, the parent can request the full-size copy for any of the reduced-size copies, assuming the media object is still available on the first client device 110.

In one embodiment, using the user interface 338, the second user can request the reduced version of the detected media object from the server 120 over one or more network connections 203 and 103. Alternatively, the second client device 310 can request the reduced version from the remote storage 130 without user input. For example, upon logging into the monitoring service, the server 120 can automatically transmit the detected media objects to be reviewed by the other user via user interface 338. In another embodiment, the client device 110 sends the reduced version of the media object to a remote storage location (not illustrated) associated with the client device 310 using the one or more network connections 103 and 203. For example, the client device 310 may have local storage (not illustrated) in which the reduced-size copies may be stored for immediate or postponed review by the user of the second client device 310. Alternatively, a direct connection may be established between the client devices 110 and 310 to request and send the reduced-size copies of the media objects detected on the client device 110. In this embodiment, the remote storage location 130 and server 120 may not be needed to transfer the reduced-size copies, or to request the full-size copies from the client device 110. Alternatively, the server 120 may still be used to coordinate such transfer between the client devices 110 and 310.

In another embodiment, the server 120 can notify the user of the second client device 310 that one or more media objects have been detected on the client device 110 and stored in a remote data storage location. In one embodiment, the notification may include a link to the remote data storage location, such as, for example, a web page that displays the reduced-size copies of the detected media objects. The web page may include additional information, such as metadata associated with the media object, such as when the media object was received, sent, presented, or created by the client device 110, to or from who the media object was received or sent, etc. The notification may be sent, for example, by an email message to the user of the second client device 310, a SMS message or an MMS message, or the like, without the user needing to log into the monitoring service. As described above, in one embodiment, the server 120 provides a web-based user interface over the network 102 to enable efficient review of the detected media objects by the user of the second client device 310. Alternatively, the reduced-size copies detected on the first client device 110 may be accessed and presented to the user of the second device 310 in various ways as would be appreciated by one of ordinary skill in the art having the benefit of this disclosure.

With the rise of “sexting” and non-business use of company-owned mobile devices, mobile security and safety for adolescents are becoming more important. For example, mobile devices, having the ability to create pictures and the ability to quickly receive or distribute them, already present parental controls issues, as well as productivity controls and data loss prevention (DLP) issues, as will be discussed in more detail below. The embodiments described herein provide an efficient way to address these problems in a practical manner, especially as phone cameras become more sophisticated, thus, creating better quality pictures that result in large files. The embodiments described herein create and collect reduced file size versions of the original images (or other media objects) and send these versions to an off-phone location, to enable easy review of the image by the owner, a parent, an employer, or the like.

It should be noted that some of the embodiments have been described above in the context of parental monitoring, however, these embodiments can be used in other contexts, such as employer monitoring, third-party monitoring (e.g., a spouse or other family member), or the like. In the context of employer monitoring, in addition to allow the monitoring of receipt, transmission, presentation and/or creation of inappropriate media objects, such as sexually explicit material, the embodiments may also be used for other purposes, such as productivity control, or for DLP purposes. These embodiments may be implemented as part of a DLP system. Some employers provide mobile devices to their employees, but such devices can result in intentional or unintentional distribution of sensitive information in the form of media objects. The sensitive data may include, for example, confidential employee information, confidential client or patient information, business process information, IP information (e.g., software code, invention disclosure information, etc.), etc. In one scenario, an employer could monitor a client device that is used by the employee to detect receipt, transmission, presentation or creation of media objects that contain this information. For example, the employee may use a camera phone to capture images of product design documents, customer lists, human resource documents, or the like, and disseminate these images using email or MMS messages to others outside of the organization or to a personal account. The employer could quickly and easily review the images detected on the client device 110 to prevent and/or remedy the employee's actions. As would be appreciated by one of ordinary skill in the art having the benefit of this disclosure, other possible DLP scenarios could be detected using the embodiments described herein.

It should be noted that portions of the operations described herein may be performed as part of a cloud computing environment. Cloud computing environments could provide one or more of the operations described herein as a service over the network 102 (e.g., over the Internet). In cloud computing environments, a user typically does not need to have knowledge of, expertise in, or control over the technology infrastructure used in the cloud computing environment. Additional details regarding cloud computing environments have not been included as one of ordinary skill in the art would appreciate how to implement portions of these embodiments in a cloud computing environment.

FIG. 4 is a flow diagram of one embodiment of a method 400 of managing media objects associated with a client device. The method 400 is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), firmware (embedded software), or any combination thereof. In one embodiment, the method 400 is performed by media object management system 112 of FIGS. 1-2.

Referring to FIG. 4, processing logic begins with monitoring at least one of a storage location and one or more media object generators of a client device (block 402). Processing logic determines whether a media object has been received, transmitted, presented, or created by the client device (block 404). If the processing logic does not detect receipt, transmission, presentation or creation of a media object, the processing logic returns to monitor the storage location and/or media object generators at block 402. When the processing logic detects the receipt, transmission, presentation, or creation of the media object at block 404, processing logic automatically (without user interaction) generates a reduced version of the detected media object (block 406) and transmits the reduced version to a remote data storage location over a network connection (block 408). As discussed above, the reduced version can be a reduced-size copy of the media object (e.g., a thumbnail), a URL of the media object, or the like. In one embodiment, the processing logic can store the reduced version in local storage, for example, until requested for transmission to the remote data storage location. Regardless of whether the processing logic transmits the reduced version upon generation of the reduced version at block 406 or at a subsequent time, the method returns to the detecting operation at block 402.

In one embodiment, the processing logic monitors a storage location to detect when the media object is written to the storage location, such as a storage location in the local storage 114. In one embodiment, the processing logic monitors the storage location by searching for files stored in the storage location that have a designated media file type to detect the media object.

In another embodiment, the processing logic monitors a media object generator (e.g., 116) to detect when the media object is created or presented by the media object generator. In one embodiment, the media object generator is a camera application that communicates with a camera coupled to or part of the client device and the processing logic detects the media object when the camera application creates the media object or when the camera application stores the media object. In one embodiment, the camera is a still image digital camera and the media object is a still image. In another embodiment, the camera is a digital video camera and the media object is a video.

In another embodiment, the processing logic monitors an application for presenting media objects to a user of the client device to detect when the media object is presented to the user. In another embodiment, the processing logic monitors an application for creating media objects to detect when the media object has been created by the application. In another embodiment, the processing logic monitors an application for presenting media objects to detect when the media object has been presented by the application.

In another embodiment, the processing logic monitors an incoming or outgoing message to detect when the message contains the media object. The incoming or outgoing message may be an email message and the media object may be embedded within the email message or attached to the email message. The incoming or outgoing message may also be other types of messages that contain media data, such as a MMS message, an EMS message, a SMS message, or the like.

FIG. 5 is a flow diagram of one embodiment of a method 500 of facilitating review of media objects associated with client devices. The method 500 is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), firmware (embedded software), or any combination thereof. In one embodiment, the method 500 is performed by the media object presentation system 122 of the server 120 of FIGS. 1 and 2. It should also be noted that some of the operations of the method 500 may be performed by other devices, such as the media object management system 122, the media object presentation system 122 or the server 120 that manages the remote storage 130 of FIGS. 1-3.

Referring to FIG. 5, processing logic begins with determining whether there has been a request for review of media objects associated with a specific client device (block 502). If not, the processing logic continues to wait for such request. Otherwise, the processing logic accesses reduced versions stored in the remote data storage location for the desired client device (block 504) and presents the reduced versions to a requestor (block 506). In one embodiment, the processing logic causes the reduced versions to be presented as part of a web-based interface to the user on a client device.

While the processing logic presents the reduced versions to the user, the processing logic determines if input has been received to request a full-size copy of a media object from the user (block 508). If no input has been received, the processing logic returns to block 502. If input has been received, processing logic requests a full-size copy of the media object from the client device and presents the full-size copy to the user (block 510), for example, on the second client device 310 or on the server 120. The method 500 then returns to block 502.

FIG. 6 illustrates a diagrammatic representation of a machine in the exemplary form of a processing system 600 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative embodiments, the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet. The machine may operate in the capacity of a server or a client machine in client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein for enabling efficient review of media objects received, transmitted, presented, or created by a client device, such as the methods 400 and 500 described above. In one embodiment, the computer system 600 represents various components that may be implemented in the client device 110, the server 120, and/or the client device 310 described above. Alternatively, each of these devices may include more or less components as illustrated in the computer system 600 of FIG. 6.

The exemplary computer system 600 includes a processing device 602, a main memory 604 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or DRAM (RDRAM), etc.), a static memory 606 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 616, each of which communicate with each other via a bus 630.

Processing device 602 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device 602 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets. The processing device 602 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 602 is configured to execute the processing logic 626 for performing the operations and steps discussed herein.

The computer system 600 may further include a network interface device 622. The computer system 600 also may include a video display unit 610 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 612 (e.g., a keyboard), a cursor control device 614 (e.g., a mouse), and a signal generation device 620 (e.g., a speaker).

The data storage device 616 may include a computer-readable storage medium 624 on which is stored one or more sets of instructions (e.g., software 626) embodying any one or more of the methodologies or functions described herein. The software 626 may also reside, completely or at least partially, within the main memory 604 and/or within the processing device 602 during execution thereof by the computer system 600, the main memory 604 and the processing device 602 also constituting computer-readable storage media. The software 626 may further be transmitted or received over a network via the network interface device 622. It should be noted that the local storage 114 and/or the local storage 124 of FIGS. 1-3 may represent the main memory 604, the static memory 606, the drive unit 616, and/or on-board memory of the processing device 602. Alternatively, the local storage 114 and/or 124 may represent the main memory 604 of the computer system 600.

While the computer-readable storage medium 624 is shown in an exemplary embodiment to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable storage medium” shall also be taken to include any medium that is capable of storing a set of instructions for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present embodiments. The term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, magnetic media, or other types of mediums for storing the instructions. The term “computer-readable transmission medium” shall be taken to include any medium that is capable of transmitting a set of instructions for execution by the machine to cause the machine to perform any one or more of the methodologies of the present embodiments.

The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to utilize the invention and various embodiments with various modifications as may be suited to the particular use contemplated. 

What is claimed is:
 1. A computer-implemented method, comprising: detecting, by a client device comprising a processor, a media object associated with the client device; automatically generating, by the client device, a reduced version of the detected media object; determining, by the client device based on a relative cost associated with a network connection of the client device, one or more conditions specifying an optimal time and an optimal type of transmission for the reduced version, wherein the optimal time indicates a specified period of time that the reduced version should be transmitted from the client device; and transmitting, by the client device, the reduced version of the detected media object to a remote data storage location over the network connection according to the determined one or more conditions, the transmitting to facilitate review by a user of the reduced version from the remote data storage location.
 2. The method of claim 1, wherein the reduced version is at least one of a reduced-size copy of the media object and a uniform resource locator (URL) of the media object.
 3. The method of claim 1, further comprising monitoring at least one of a storage location and a media object generator of the client device to detect receipt, transmission, presentation, or creation of the media object by the client device.
 4. The method of claim 3, further comprising monitoring the storage location to detect when the media object is written to the storage location, wherein said monitoring the storage location comprises searching for files stored in the storage location that have a designated media file type to detect the media object.
 5. The method of claim 1, further comprising monitoring an incoming or outgoing message to detect when the message contains the media object.
 6. The method of claim 5, wherein the message is at least one of an email message, a Multimedia Messaging Service (MMS) message, an Enhanced Messaging Service (EMS) message, or a text message containing media data.
 7. The method of claim 1, further comprising monitoring a media object generator to detect when the media object is created by the media object generator or stored by the media object generator or presented by the media object generator.
 8. The method of claim 7, wherein the media object generator is a camera application that communicates with a camera associated with the client device, and wherein said monitoring comprises detecting the media object when the camera application creates the media object or when the camera application stores the media object.
 9. The method of claim 7, wherein the media object generator is a browser application for creating a temporary file for the media object when rendering the media object in a browser window.
 10. A system, comprising: a local storage, and a processing device communicably coupled to the local storage; a media object generator executed by the processing device, the media object generator to perform at least one of receiving, transmitting, presenting, and creating a media object; and a media object management system executed by the processing device, the media object management system operable to: detect a media object associated with the media object generator; automatically generate a reduced version of the detected media object; determine, based on a relative cost associated with a network connection of the client device, one or more conditions specifying an optimal time and an optimal type of transmission for the reduced version, wherein the optimal time indicates a specified period of time that the reduced version should be transmitted from the client device; and transmit the reduced version of the detected media object to a remote data storage location over the network connection according to the determined one or more conditions, the transmitting to facilitate review by a user of the reduced version from the remote data storage location.
 11. The system of claim 10, wherein the media object management system comprises: a monitoring agent to monitor at least one of a storage location and a media object generator of the client device to detect receipt, transmission, presentation, or creation of the media object by the client device; a reduced version creator to automatically generate the reduced version of the detected media object, wherein the reduced version is at least one of a reduced-size copy of the media object or a uniform resource locator (URL) of the media object; and a transmitting agent to transmit the reduced version to the remote data storage location over the network connection to be reviewed by the user.
 12. The system of claim 11, wherein the monitoring agent is to monitor the storage location to detect when the media object is written to the storage location, and wherein the monitoring agent is to search for files stored in the storage location that have a designated media file type to detect the media object.
 13. The system of claim 11, wherein the monitoring agent is to monitor an incoming or outgoing message to detect when the message contains the media object, wherein the message is at least one of an email message, a Multimedia Messaging Service (MMS) message, an Enhanced Messaging Service (EMS) message, or a text message containing media data.
 14. The system of claim 11, wherein the monitoring agent is to monitor a media object generator to detect when the media object is created by the media object generator presented by the media object generator or stored by the media object generator.
 15. The system of claim 10, further comprising a server coupled to the remote data storage location, wherein the server comprises a media object presentation system to access the reduced version stored in the remote data storage location and to present the reduced version to the user.
 16. The system of claim 15, wherein the media object presentation system comprises a requesting agent to request a full-size copy of the media object from the client device in response to input received at the server from the user, and wherein the media object management system comprises a full-size media object request agent to respond to the request.
 17. A non-transitory computer-readable storage medium that stores instructions, which when executed on a processing system, cause the processing system to perform a method comprising: detecting, by a client device, a media object associated with the client device; automatically generating, by the client device, a reduced version of the detected media object; and determining, by the client device based on a relative cost associated with a network connection of the client device, one or more conditions specifying an optimal time and an optimal type of transmission for the reduced version, wherein the optimal time indicates a specified period of time that the reduced version should be transmitted from the client device; and transmitting the reduced version of the detected media object to a remote data storage location over the network connection according to the determined one or more conditions, the transmitting to facilitate review by a user of the reduced version from the remote data storage location.
 18. The method of claim 1, further comprising: transmitting, by the client device, a characteristic of the detected media object, wherein the characteristic of the detected media object is used to organize the reduced version of the detected media object.
 19. The system of claim 15, wherein the media object management system is further operable to transmit a characteristic of the detected media object and wherein the media object presentation system is further operable to organize the reduced version of the detected media object based on the characteristic.
 20. The non-transitory computer-readable storage medium of claim 17, wherein the method further comprises: transmitting a characteristic of the detected media object, wherein the characteristic of the detected media object is used to organize the reduced version of the detected media object. 